home *** CD-ROM | disk | FTP | other *** search
/ MacAddict 104 / MacAddict_104_2005-04.iso / Software / Internet & Communication / WordPress 1.2.2 freeware.dmg / wordpress / wp-admin / link-manager.php < prev    next >
PHP Script  |  2004-12-16  |  32KB  |  793 lines

  1. <?php
  2. // Links
  3. // Copyright (C) 2002, 2003 Mike Little -- mike@zed1.com
  4.  
  5. require_once('../wp-config.php');
  6.  
  7. $title = __('Manage Links');
  8. $this_file = 'link-manager.php';
  9.  
  10. function xfn_check($class, $value = '', $type = 'check') {
  11.     global $link_rel;
  12.     if ('' != $value && strstr($link_rel, $value)) {
  13.         echo ' checked="checked"';
  14.     }
  15.     if ('' == $value) {
  16.         if ('family' == $class && !strstr($link_rel, 'child') && !strstr($link_rel, 'parent') && !strstr($link_rel, 'sibling') && !strstr($link_rel, 'spouse') ) echo ' checked="checked"';
  17.         if ('friendship' == $class && !strstr($link_rel, 'friend') && !strstr($link_rel, 'acquaintance') ) echo ' checked="checked"';
  18.         if ('geographical' == $class && !strstr($link_rel, 'co-resident') && !strstr($link_rel, 'neighbor') ) echo ' checked="checked"';
  19.     }
  20. }
  21.  
  22. function category_dropdown($fieldname, $selected = 0) {
  23.     global $wpdb, $tablelinkcategories;
  24.     
  25.     $results = $wpdb->get_results("SELECT cat_id, cat_name, auto_toggle FROM $tablelinkcategories ORDER BY cat_id");
  26.     echo "\n<select name='$fieldname' size='1'>";
  27.     foreach ($results as $row) {
  28.         echo "\n\t<option value='$row->cat_id'";
  29.         if ($row->cat_id == $selected)
  30.             echo " selected='selected'";
  31.         echo ">$row->cat_id: $row->cat_name";
  32.         if ('Y' == $row->auto_toggle)
  33.             echo ' (auto toggle)';
  34.         echo "</option>\n";
  35.     }
  36.     echo "\n</select>\n";
  37. }
  38.  
  39. function add_magic_quotes($array) {
  40.     foreach ($array as $k => $v) {
  41.         if (is_array($v)) {
  42.             $array[$k] = add_magic_quotes($v);
  43.         } else {
  44.             $array[$k] = addslashes($v);
  45.         }
  46.     }
  47.     return $array;
  48. }
  49. if (!get_magic_quotes_gpc()) {
  50.     $_GET    = add_magic_quotes($_GET);
  51.     $_POST   = add_magic_quotes($_POST);
  52.     $_COOKIE = add_magic_quotes($_COOKIE);
  53. }
  54.  
  55. $wpvarstoreset = array('action','standalone','cat_id', 'linkurl', 'name', 'image',
  56.                        'description', 'visible', 'target', 'category', 'link_id',
  57.                        'submit', 'order_by', 'links_show_cat_id', 'rating', 'rel',
  58.                        'notes', 'linkcheck[]');
  59.  
  60. for ($i=0; $i<count($wpvarstoreset); $i += 1) {
  61.     $wpvar = $wpvarstoreset[$i];
  62.     if (!isset($$wpvar)) {
  63.         if (empty($_POST["$wpvar"])) {
  64.             if (empty($_GET["$wpvar"])) {
  65.                 $$wpvar = '';
  66.             } else {
  67.                 $$wpvar = $_GET["$wpvar"];
  68.             }
  69.         } else {
  70.             $$wpvar = $_POST["$wpvar"];
  71.         }
  72.     }
  73. }
  74.  
  75. $links_show_cat_id = $_COOKIE['links_show_cat_id_' . $cookiehash];
  76. $links_show_order = $_COOKIE['links_show_order_' . $cookiehash];
  77.  
  78. if ('' != $_POST['assign']) $action = 'assign';
  79. if ('' != $_POST['visibility']) $action = 'visibility';
  80. if ('' != $_POST['move']) $action = 'move';
  81.  
  82. switch ($action) {
  83.   case 'assign':
  84.   {
  85.     $standalone = 1;
  86.     include_once('admin-header.php');
  87.  
  88.     check_admin_referer();
  89.  
  90.     // check the current user's level first.
  91.     if ($user_level < get_settings('links_minadminlevel'))
  92.       die (__("Cheatin' uh ?"));
  93.  
  94.     //for each link id (in $linkcheck[]): if the current user level >= the
  95.     //userlevel of the owner of the link then we can proceed.
  96.  
  97.     if (count($linkcheck) == 0) {
  98.         header('Location: ' . $this_file);
  99.         exit;
  100.     }
  101.     $all_links = join(',', $linkcheck);
  102.     $results = $wpdb->get_results("SELECT link_id, link_owner, user_level FROM $tablelinks LEFT JOIN $tableusers ON link_owner = ID WHERE link_id in ($all_links)");
  103.     foreach ($results as $row) {
  104.       if (!get_settings('links_use_adminlevels') || ($user_level >= $row->user_level)) { // ok to proceed
  105.         $ids_to_change[] = $row->link_id;
  106.       }
  107.     }
  108.  
  109.     // should now have an array of links we can change
  110.     $all_links = join(',', $ids_to_change);
  111.     $q = $wpdb->query("update $tablelinks SET link_owner='$newowner' WHERE link_id IN ($all_links)");
  112.  
  113.     header('Location: ' . $this_file);
  114.     break;
  115.   }
  116.   case 'visibility':
  117.   {
  118.     $standalone = 1;
  119.     include_once('admin-header.php');
  120.  
  121.     check_admin_referer();
  122.  
  123.     // check the current user's level first.
  124.     if ($user_level < get_settings('links_minadminlevel'))
  125.       die (__("Cheatin' uh ?"));
  126.  
  127.     //for each link id (in $linkcheck[]): toggle the visibility
  128.     if (count($linkcheck) == 0) {
  129.         header('Location: ' . $this_file);
  130.         exit;
  131.     }
  132.     $all_links = join(',', $linkcheck);
  133.     $results = $wpdb->get_results("SELECT link_id, link_visible FROM $tablelinks WHERE link_id in ($all_links)");
  134.     foreach ($results as $row) {
  135.         if ($row->link_visible == 'Y') { // ok to proceed
  136.             $ids_to_turnoff[] = $row->link_id;
  137.         } else {
  138.             $ids_to_turnon[] = $row->link_id;
  139.         }
  140.     }
  141.  
  142.     // should now have two arrays of links to change
  143.     if (count($ids_to_turnoff)) {
  144.         $all_linksoff = join(',', $ids_to_turnoff);
  145.         $q = $wpdb->query("update $tablelinks SET link_visible='N' WHERE link_id IN ($all_linksoff)");
  146.     }
  147.  
  148.     if (count($ids_to_turnon)) {
  149.         $all_linkson = join(',', $ids_to_turnon);
  150.         $q = $wpdb->query("update $tablelinks SET link_visible='Y' WHERE link_id IN ($all_linkson)");
  151.     }
  152.  
  153.     header('Location: ' . $this_file);
  154.     break;
  155.   }
  156.   case 'move':
  157.   {
  158.     $standalone = 1;
  159.     include_once('admin-header.php');
  160.  
  161.     check_admin_referer();
  162.  
  163.     // check the current user's level first.
  164.     if ($user_level < get_settings('links_minadminlevel'))
  165.       die (__("Cheatin' uh ?"));
  166.  
  167.     //for each link id (in $linkcheck[]) change category to selected value
  168.     if (count($linkcheck) == 0) {
  169.         header('Location: ' . $this_file);
  170.         exit;
  171.     }
  172.     $all_links = join(',', $linkcheck);
  173.     // should now have an array of links we can change
  174.     $q = $wpdb->query("update $tablelinks SET link_category='$category' WHERE link_id IN ($all_links)");
  175.  
  176.     header('Location: ' . $this_file);
  177.     break;
  178.   }
  179.  
  180.   case 'Add':
  181.   {
  182.     $standalone = 1;
  183.     include_once('admin-header.php');
  184.  
  185.     check_admin_referer();
  186.  
  187.      $link_url = wp_specialchars($_POST['linkurl']);
  188.       $link_url = preg_match('/^(https?|ftps?|mailto|news|gopher):/is', $link_url) ? $link_url : 'http://' . $link_url; 
  189.      $link_name = wp_specialchars($_POST['name']);
  190.      $link_image = wp_specialchars($_POST['image']);
  191.      $link_target = $_POST['target'];
  192.      $link_category = $_POST['category'];
  193.     $link_description = $_POST['description'];
  194.     $link_visible = $_POST['visible'];
  195.     $link_rating = $_POST['rating'];
  196.     $link_rel = $_POST['rel'];
  197.     $link_notes = $_POST['notes'];
  198.     $link_rss_uri =  wp_specialchars($_POST['rss_uri']);
  199.     $auto_toggle = get_autotoggle($link_category);
  200.  
  201.     if ($user_level < get_settings('links_minadminlevel'))
  202.       die (__("Cheatin' uh ?"));
  203.  
  204.     // if we are in an auto toggle category and this one is visible then we
  205.     // need to make the others invisible before we add this new one.
  206.     if (($auto_toggle == 'Y') && ($link_visible == 'Y')) {
  207.       $wpdb->query("UPDATE $tablelinks set link_visible = 'N' WHERE link_category = $link_category");
  208.     }
  209.     $wpdb->query("INSERT INTO $tablelinks (link_url, link_name, link_image, link_target, link_category, link_description, link_visible, link_owner, link_rating, link_rel, link_notes, link_rss) " .
  210.       " VALUES('" . addslashes($link_url) . "','"
  211.            . addslashes($link_name) . "', '"
  212.            . addslashes($link_image) . "', '$link_target', $link_category, '"
  213.            . addslashes($link_description) . "', '$link_visible', $user_ID, $link_rating, '" . addslashes($link_rel) . "', '" . addslashes($link_notes) . "', '$link_rss_uri')");
  214.  
  215.     header('Location: ' . $_SERVER['HTTP_REFERER'] . '?added=true');
  216.     break;
  217.   } // end Add
  218.  
  219.   case 'editlink':
  220.   {
  221.     if (isset($submit)) {
  222.  
  223.       if (isset($links_show_cat_id) && ($links_show_cat_id != ''))
  224.         $cat_id = $links_show_cat_id;
  225.  
  226.       if (!isset($cat_id) || ($cat_id == '')) {
  227.         if (!isset($links_show_cat_id) || ($links_show_cat_id == ''))
  228.           $cat_id = 'All';
  229.       }
  230.       $links_show_cat_id = $cat_id;
  231.  
  232.       $standalone = 1;
  233.       include_once('admin-header.php');
  234.  
  235.       check_admin_referer();
  236.  
  237.        $link_id = (int) $_POST['link_id'];
  238.        $link_url = wp_specialchars($_POST['linkurl']);
  239.         $link_url = preg_match('/^(https?|ftps?|mailto|news|gopher):/is', $link_url) ? $link_url : 'http://' . $link_url; 
  240.        $link_name = wp_specialchars($_POST['name']);
  241.        $link_image = wp_specialchars($_POST['image']);
  242.        $link_target = wp_specialchars($_POST['target']);
  243.        $link_category = $_POST['category'];
  244.        $link_description = $_POST['description'];
  245.       $link_visible = $_POST['visible'];
  246.       $link_rating = $_POST['rating'];
  247.       $link_rel = $_POST['rel'];
  248.       $link_notes = $_POST['notes'];
  249.       $link_rss_uri =  $_POST['rss_uri'];
  250.       $auto_toggle = get_autotoggle($link_category);
  251.  
  252.       if ($user_level < get_settings('links_minadminlevel'))
  253.         die (__("Cheatin' uh ?"));
  254.  
  255.       // if we are in an auto toggle category and this one is visible then we
  256.       // need to make the others invisible before we update this one.
  257.       if (($auto_toggle == 'Y') && ($link_visible == 'Y')) {
  258.         $wpdb->query("UPDATE $tablelinks set link_visible = 'N' WHERE link_category = $link_category");
  259.       }
  260.  
  261.       $wpdb->query("UPDATE $tablelinks SET link_url='" . addslashes($link_url) . "',
  262.       link_name='" . addslashes($link_name) . "',\n link_image='" . addslashes($link_image) . "',
  263.       link_target='$link_target',\n link_category=$link_category,
  264.       link_visible='$link_visible',\n link_description='" . addslashes($link_description) . "',
  265.       link_rating=$link_rating,
  266.       link_rel='" . addslashes($link_rel) . "',
  267.       link_notes='" . addslashes($link_notes) . "',
  268.       link_rss = '$link_rss_uri'
  269.       WHERE link_id=$link_id");
  270.     } // end if save
  271.     setcookie('links_show_cat_id_' . $cookiehash, $links_show_cat_id, time()+600);
  272.     header('Location: ' . $this_file);
  273.     break;
  274.   } // end Save
  275.  
  276.   case 'Delete':
  277.   {
  278.     $standalone = 1;
  279.     include_once('admin-header.php');
  280.  
  281.     check_admin_referer();
  282.  
  283.     $link_id = (int) $_GET["link_id"];
  284.  
  285.     if ($user_level < get_settings('links_minadminlevel'))
  286.       die (__("Cheatin' uh ?"));
  287.  
  288.     $wpdb->query("DELETE FROM $tablelinks WHERE link_id = $link_id");
  289.  
  290.     if (isset($links_show_cat_id) && ($links_show_cat_id != ''))
  291.         $cat_id = $links_show_cat_id;
  292.  
  293.     if (!isset($cat_id) || ($cat_id == '')) {
  294.         if (!isset($links_show_cat_id) || ($links_show_cat_id == ''))
  295.         $cat_id = 'All';
  296.     }
  297.     $links_show_cat_id = $cat_id;
  298.     setcookie("links_show_cat_id_".$cookiehash, $links_show_cat_id, time()+600);
  299.     header('Location: '.$this_file);
  300.     break;
  301.   } // end Delete
  302.  
  303.   case 'linkedit':
  304.   {
  305.     $standalone=0;
  306.     $xfn = true;
  307.     include_once ('admin-header.php');
  308.     if ($user_level < get_settings('links_minadminlevel')) {
  309.       die(__('You do not have sufficient permissions to edit the links for this blog.'));
  310.     }
  311.  
  312.       $link_id = (int) $_GET['link_id'];
  313.      $row = $wpdb->get_row("SELECT * FROM $tablelinks WHERE link_id = $link_id");
  314.   
  315.       if ($row) {
  316.        $link_url = wp_specialchars($row->link_url, 1);
  317.        $link_name = wp_specialchars($row->link_name, 1);
  318.         $link_image = $row->link_image;
  319.         $link_target = $row->link_target;
  320.         $link_category = $row->link_category;
  321.        $link_description = wp_specialchars($row->link_description);
  322.         $link_visible = $row->link_visible;
  323.         $link_rating = $row->link_rating;
  324.         $link_rel = $row->link_rel;
  325.        $link_notes = wp_specialchars($row->link_notes);
  326.        $link_rss_uri = wp_specialchars($row->link_rss);
  327.      } else {
  328.          die( __('Link not found.') ); 
  329.      }
  330.  
  331. ?>
  332. <ul id="adminmenu2"> 
  333.   <li><a href="link-manager.php" class="current"><?php _e('Manage Links') ?></a></li> 
  334.   <li><a href="link-add.php"><?php _e('Add Link') ?></a></li> 
  335.   <li><a href="link-categories.php"><?php _e('Link Categories') ?></a></li> 
  336.   <li class="last"><a href="link-import.php"><?php _e('Import Blogroll') ?></a></li> 
  337. </ul> 
  338. <style media="screen" type="text/css">
  339. th { text-align: right; }
  340. </style>
  341. <div class="wrap"> 
  342.   <form action="" method="post" name="editlink" id="editlink"> 
  343.   <h2><?php _e('Edit a link:') ?></h2>
  344. <fieldset class="options">
  345.     <legend><?php _e('Basics') ?></legend>
  346.         <table class="editform" width="100%" cellspacing="2" cellpadding="5">
  347.          <tr>
  348.            <th width="33%" scope="row"><?php _e('URI:') ?></th>
  349.            <td width="67%"><input type="text" name="linkurl" value="<?php echo $link_url; ?>" style="width: 95%; /"></td>
  350.          </tr>
  351.          <tr>
  352.            <th scope="row"><?php _e('Link Name:') ?></th>
  353.            <td><input type="text" name="name" value="<?php echo $link_name; ?>" style="width: 95%" /></td>
  354.          </tr>
  355.          <tr>
  356.             <th scope="row"><?php _e('Short description:') ?></th>
  357.              <td><input type="text" name="description" value="<?php echo $link_description; ?>" style="width: 95%" /></td>
  358.              </tr>
  359.         <tr>
  360.            <th scope="row"><?php _e('Category:') ?></th>
  361.            <td><?php category_dropdown('category', $link_category); ?></td>
  362.          </tr>
  363. </table>
  364. </fieldset>
  365.        <p class="submit">
  366.        <input type="submit" name="submit" value="<?php _e('Save Changes »') ?>" />
  367.        </p>
  368.     <fieldset class="options">
  369.         <legend><?php _e('Link Relationship (XFN)') ?></legend>
  370.         <table class="editform" width="100%" cellspacing="2" cellpadding="5">
  371.             <tr>
  372.                 <th width="33%" scope="row"><?php _e('rel:') ?></th>
  373.                 <td width="67%"><input type="text" name="rel" id="rel" size="50" value="<?php echo $link_rel; ?>"></td>
  374.                </tr>
  375.             <tr>
  376.                 <th scope="row"><?php _e('<a href="http://gmpg.org/xfn/">XFN</a> Creator:') ?></th>
  377.                 <td><table cellpadding="3" cellspacing="5">
  378.             <tr>
  379.               <th scope="row"> <?php _e('friendship') ?> </th>
  380.               <td>
  381.                 <label for="label">
  382.                 <input class="valinp" type="radio" name="friendship" value="acquaintance" id="label" <?php xfn_check('friendship', 'acquaintance', 'radio'); ?> />  <?php _e('acquaintance') ?></label>
  383.                 <label for="label2">
  384.                 <input class="valinp" type="radio" name="friendship" value="friend" id="label2" <?php xfn_check('friendship', 'friend', 'radio'); ?> /> <?php _e('friend') ?></label>
  385.                 <label for="label3">
  386.                 <input name="friendship" type="radio" class="valinp" id="label3" value="" <?php xfn_check('friendship', '', 'radio'); ?> />
  387.                 <?php _e('none') ?></label>
  388.               </td>
  389.             </tr>
  390.             <tr>
  391.               <th scope="row"> <?php _e('physical') ?> </th>
  392.               <td>
  393.                 <label for="label4">
  394.                 <input class="valinp" type="checkbox" name="physical" value="met" id="label4" <?php xfn_check('physical', 'met'); ?> />
  395.           <?php _e('met') ?></label>
  396.               </td>
  397.             </tr>
  398.             <tr>
  399.               <th scope="row"> <?php _e('professional') ?> </th>
  400.               <td>
  401.                 <label for="label5">
  402.                 <input class="valinp" type="checkbox" name="professional" value="co-worker" id="label5" <?php xfn_check('professional', 'co-worker'); ?> />
  403.           <?php _e('co-worker') ?></label>
  404.                 <label for="label6">
  405.                 <input class="valinp" type="checkbox" name="professional" value="colleague" id="label6" <?php xfn_check('professional', 'colleague'); ?> />
  406.           <?php _e('colleague') ?></label>
  407.               </td>
  408.             </tr>
  409.             <tr>
  410.               <th scope="row"> <?php _e('geographical') ?> </th>
  411.               <td>
  412.                 <label for="label7">
  413.                 <input class="valinp" type="radio" name="geographical" value="co-resident" id="label7" <?php xfn_check('geographical', 'co-resident', 'radio'); ?> />
  414.           <?php _e('co-resident') ?></label>
  415.                 <label for="label8">
  416.                 <input class="valinp" type="radio" name="geographical" value="neighbor" id="label8" <?php xfn_check('geographical', 'neighbor', 'radio'); ?> />
  417.           <?php _e('neighbor') ?></label>
  418.                 <label for="label9">
  419.                 <input class="valinp" type="radio" name="geographical" value="" id="label9" <?php xfn_check('geographical', '', 'radio'); ?> />
  420.           <?php _e('none') ?></label>
  421.               </td>
  422.             </tr>
  423.             <tr>
  424.               <th scope="row"> family </th>
  425.               <td>
  426.                 <label for="label10">
  427.                 <input class="valinp" type="radio" name="family" value="child" id="label10" <?php xfn_check('family', 'child', 'radio'); ?>  />
  428.           <?php _e('child') ?></label>
  429.                 <label for="label11">
  430.                 <input class="valinp" type="radio" name="family" value="parent" id="label11" <?php xfn_check('family', 'parent', 'radio'); ?> />
  431.           <?php _e('parent') ?></label>
  432.                 <label for="label12">
  433.                 <input class="valinp" type="radio" name="family" value="sibling" id="label12" <?php xfn_check('family', 'sibling', 'radio'); ?> />
  434.           <?php _e('sibling') ?></label>
  435.                 <label for="label13">
  436.                 <input class="valinp" type="radio" name="family" value="spouse" id="label13" <?php xfn_check('family', 'spouse', 'radio'); ?> />
  437.           <?php _e('spouse') ?></label>
  438.                 <label for="label14">
  439.                 <input class="valinp" type="radio" name="family" value="" id="label14" <?php xfn_check('family', '', 'radio'); ?> />
  440.           <?php _e('none') ?></label>
  441.               </td>
  442.             </tr>
  443.             <tr>
  444.               <th scope="row"> <?php _e('romantic') ?> </th>
  445.               <td>
  446.                 <label for="label15">
  447.                 <input class="valinp" type="checkbox" name="romantic" value="muse" id="label15" <?php xfn_check('romantic', 'muse'); ?> />
  448.          <?php _e('muse') ?></label>
  449.                 <label for="label16">
  450.                 <input class="valinp" type="checkbox" name="romantic" value="crush" id="label16" <?php xfn_check('romantic', 'crush'); ?> />
  451.          <?php _e('crush') ?></label>
  452.                 <label for="label17">
  453.                 <input class="valinp" type="checkbox" name="romantic" value="date" id="label17" <?php xfn_check('romantic', 'date'); ?> />
  454.          <?php _e('date') ?></label>
  455.                 <label for="label18">
  456.                 <input class="valinp" type="checkbox" name="romantic" value="sweetheart" id="label18" <?php xfn_check('romantic', 'sweetheart'); ?> />
  457.          <?php _e('sweetheart') ?></label>
  458.               </td>
  459.             </tr>
  460.         </table></td>
  461.                </tr>
  462. </table>
  463. </fieldset>
  464.        <p class="submit">
  465.        <input type="submit" name="submit" value="<?php _e('Save Changes »') ?>" />
  466.        </p>
  467. <fieldset class="options">
  468.         <legend><?php _e('Advanced') ?></legend>
  469.         <table class="editform" width="100%" cellspacing="2" cellpadding="5">
  470.          <tr>
  471.            <th width="33%" scope="row"><?php _e('Image URI:') ?></th>
  472.            <td width="67%"><input type="text" name="image" size="50" value="<?php echo $link_image; ?>" style="width: 95%" /></td>
  473.          </tr>
  474. <tr>
  475.            <th scope="row"><?php _e('RSS URI:') ?> </th>
  476.            <td><input name="rss_uri" type="text" id="rss_uri" value="<?php echo $link_rss_uri; ?>" size="50" style="width: 95%" /></td>
  477.          </tr>
  478.          <tr>
  479.            <th scope="row"><?php _e('Notes:') ?></th>
  480.            <td><textarea name="notes" cols="50" rows="10" style="width: 95%"><?php echo $link_notes; ?></textarea></td>
  481.          </tr>
  482.          <tr>
  483.            <th scope="row"><?php _e('Rating:') ?></th>
  484.            <td><select name="rating" size="1">
  485. <?php
  486.     for ($r = 0; $r < 10; $r++) {
  487.       echo('            <option value="'.$r.'" ');
  488.       if ($link_rating == $r)
  489.         echo 'selected="selected"';
  490.       echo('>'.$r.'</option>');
  491.     }
  492. ?>
  493.            </select>
  494.           <?php _e('(Leave at 0 for no rating.)') ?> </td>
  495.          </tr>
  496.          <tr>
  497.            <th scope="row"><?php _e('Target') ?></th>
  498.            <td><label>
  499.           <input type="radio" name="target" value="_blank"   <?php echo(($link_target == '_blank') ? 'checked="checked"' : ''); ?> />
  500.           <code>_blank</code></label><br />
  501. <label>
  502. <input type="radio" name="target" value="_top" <?php echo(($link_target == '_top') ? 'checked="checked"' : ''); ?> />
  503. <code>_top</code></label><br />
  504. <label>
  505. <input type="radio" name="target" value=""     <?php echo(($link_target == '') ? 'checked="checked"' : ''); ?> />
  506. <?php _e('none') ?></label><br />
  507. <?php _e('(Note that the <code>target</code> attribute is illegal in XHTML 1.1 and 1.0 Strict.)') ?></td>
  508.          </tr>
  509.          <tr>
  510.            <th scope="row"><?php _e('Visible:') ?></th>
  511.            <td><label>
  512.              <input type="radio" name="visible" <?php if ($link_visible == 'Y') echo "checked='checked'"; ?> value="Y" />
  513. <?php _e('Yes') ?></label><br /><label>
  514. <input type="radio" name="visible" <?php if ($link_visible == 'N') echo "checked='checked'"; ?> value="N" />
  515. <?php _e('No') ?></label></td>
  516.          </tr>
  517. </table>
  518. </fieldset>
  519. <p class="submit"><input type="submit" name="submit" value="<?php _e('Save Changes »') ?>" />
  520.           <input type="hidden" name="action" value="editlink" />
  521.           <input type="hidden" name="link_id" value="<?php echo (int) $link_id; ?>" />
  522.           <input type="hidden" name="order_by" value="<?php echo wp_specialchars($order_by, 1) ?>" />
  523.           <input type="hidden" name="cat_id" value="<?php echo (int) $cat_id ?>" /></p>
  524.   </form> 
  525. </div>
  526. <?php
  527.     break;
  528.   } // end linkedit
  529.   case __("Show"):
  530.   {
  531.     if (!isset($cat_id) || ($cat_id == '')) {
  532.         if (!isset($links_show_cat_id) || ($links_show_cat_id == ''))
  533.         $cat_id = 'All';
  534.     }
  535.     $links_show_cat_id = $cat_id;
  536.     if (!isset($order_by) || ($order_by == '')) {
  537.         if (!isset($links_show_order) || ($links_show_order == ''))
  538.         $order_by = 'order_name';
  539.     }
  540.     $links_show_order = $order_by;
  541.     //break; fall through
  542.   } // end Show
  543.   case "popup":
  544.   {
  545.     $link_url = stripslashes($_GET["linkurl"]);
  546.     $link_name = stripslashes($_GET["name"]);
  547.     //break; fall through
  548.   }
  549.   default:
  550.   {
  551.     if (isset($links_show_cat_id) && ($links_show_cat_id != ''))
  552.         $cat_id = $links_show_cat_id;
  553.  
  554.     if (!isset($cat_id) || ($cat_id == '')) {
  555.         if (!isset($links_show_cat_id) || ($links_show_cat_id == ''))
  556.         $cat_id = 'All';
  557.     }
  558.     $links_show_cat_id = $cat_id;
  559.     if (isset($links_show_order) && ($links_show_order != ''))
  560.         $order_by = $links_show_order;
  561.  
  562.     if (!isset($order_by) || ($order_by == ''))
  563.         $order_by = 'order_name';
  564.     $links_show_order = $order_by;
  565.  
  566.     setcookie('links_show_cat_id_'.$cookiehash, $links_show_cat_id, time()+600);
  567.     setcookie('links_show_order_'.$cookiehash, $links_show_order, time()+600);
  568.     $standalone=0;
  569.     include_once ("./admin-header.php");
  570.     if ($user_level < get_settings('links_minadminlevel')) {
  571.       die(__("You do not have sufficient permissions to edit the links for this blog."));
  572.     }
  573.  
  574.     switch ($order_by)
  575.     {
  576.         case 'order_id':     $sqlorderby = 'id';          break;
  577.         case 'order_url':    $sqlorderby = 'url';         break;
  578.         case 'order_desc':   $sqlorderby = 'description'; break;
  579.         case 'order_owner':  $sqlorderby = 'owner';       break;
  580.         case 'order_rating': $sqlorderby = 'rating';      break;
  581.         case 'order_name':
  582.         default:             $sqlorderby = 'name';        break;
  583.     }
  584.  
  585.   if ($action != "popup") {
  586. ?>
  587. <script type="text/javascript">
  588. <!--
  589. function checkAll(form)
  590. {
  591.     for (i = 0, n = form.elements.length; i < n; i++) {
  592.         if(form.elements[i].type == "checkbox") {
  593.             if(form.elements[i].checked == true)
  594.                 form.elements[i].checked = false;
  595.             else
  596.                 form.elements[i].checked = true;
  597.         }
  598.     }
  599. }
  600. //-->
  601. </script>
  602. <ul id="adminmenu2">
  603.     <li><a href="link-manager.php" class="current"><?php _e('Manage Links') ?></a></li>
  604.     <li><a href="link-add.php"><?php _e('Add Link') ?></a></li>
  605.     <li><a href="link-categories.php"><?php _e('Link Categories') ?></a></li>
  606.     <li class="last"><a href="link-import.php"><?php _e('Import Blogroll') ?></a></li>
  607. </ul>
  608. <div class="wrap">
  609.     <form name="cats" method="post" action="">
  610.     <table width="75%" cellpadding="3" cellspacing="3">
  611.       <tr>
  612.         <td>
  613.           <strong>Show</strong> links in category:<?php echo gethelp_link($this_file,'link_categories');?><br />
  614.         </td>
  615.         <td>
  616.           <strong>Order</strong> by:<?php echo gethelp_link($this_file,'order_by');?>
  617.         </td>
  618.         <td> </td>
  619.       </tr>
  620.       <tr>
  621.         <td>
  622. <?php
  623.     $results = $wpdb->get_results("SELECT cat_id, cat_name, auto_toggle FROM $tablelinkcategories ORDER BY cat_id");
  624.     echo "        <select name=\"cat_id\">\n";
  625.     echo "          <option value=\"All\"";
  626.     if ($cat_id == 'All')
  627.       echo " selected='selected'";
  628.     echo "> All</option>\n";
  629.     foreach ($results as $row) {
  630.       echo "          <option value=\"".$row->cat_id."\"";
  631.       if ($row->cat_id == $cat_id)
  632.         echo " selected='selected'";
  633.         echo ">".$row->cat_id.": ".wp_specialchars($row->cat_name);
  634.         if ($row->auto_toggle == 'Y')
  635.             echo ' (auto toggle)';
  636.         echo "</option>\n";
  637.     }
  638.     echo "        </select>\n";
  639. ?>
  640.         </td>
  641.         <td>
  642.           <select name="order_by">
  643.             <option value="order_id"     <?php if ($order_by == 'order_id')     echo " selected='selected'";?>><?php _e('Link ID') ?></option>
  644.             <option value="order_name"   <?php if ($order_by == 'order_name')   echo " selected='selected'";?>><?php _e('Name') ?></option>
  645.             <option value="order_url"    <?php if ($order_by == 'order_url')    echo " selected='selected'";?>><?php _e('URI') ?></option>
  646.             <option value="order_desc"   <?php if ($order_by == 'order_desc')   echo " selected='selected'";?>><?php _e('Description') ?></option>
  647.             <option value="order_owner"  <?php if ($order_by == 'order_owner')  echo " selected='selected'";?>><?php _e('Owner') ?></option>
  648.             <option value="order_rating" <?php if ($order_by == 'order_rating') echo " selected='selected'";?>><?php _e('Rating') ?></option>
  649.           </select>
  650.         </td>
  651.         <td>
  652.           <input type="submit" name="action" value="<?php _e('Show') ?>" />
  653.           <?php echo gethelp_link($this_file,'show');?>
  654.         </td>
  655.       </tr>
  656.     </table>
  657.     </form>
  658.  
  659. </div>
  660.  
  661. <div class="wrap">
  662.  
  663.     <form name="links" id="links" method="post" action="">
  664.     <input type="hidden" name="link_id" value="" />
  665.     <input type="hidden" name="action" value="" />
  666.     <input type="hidden" name="order_by" value="<?php echo wp_specialchars($order_by) ?>" />
  667.     <input type="hidden" name="cat_id" value="<?php echo (int) $cat_id ?>" />
  668.   <table width="100%" cellpadding="3" cellspacing="3">
  669.     <tr>
  670.       <th width="15%"><?php echo gethelp_link($this_file,'list_o_links');?> <?php _e('Name') ?></th>
  671.       <th><?php _e('URI') ?></th>
  672.       <th><?php _e('Category') ?></th>
  673.       <th><?php _e('rel') ?></th>
  674.       <th><?php _e('Image') ?></th>
  675.       <th><?php _e('Visible') ?></th>
  676.       <th colspan="2"><?php _e('Action') ?></th>
  677.       <th> </th>
  678.   </tr>
  679. <?php
  680.     $sql = "SELECT link_url, link_name, link_image, link_description, link_visible,
  681.             link_category AS cat_id, cat_name AS category, $tableusers.user_login, link_id,
  682.             link_rating, link_rel, $tableusers.user_level
  683.             FROM $tablelinks
  684.             LEFT JOIN $tablelinkcategories ON $tablelinks.link_category = $tablelinkcategories.cat_id
  685.             LEFT JOIN $tableusers ON $tableusers.ID = $tablelinks.link_owner ";
  686.  
  687.     if (isset($cat_id) && ($cat_id != 'All')) {
  688.       $sql .= " WHERE link_category = $cat_id ";
  689.     }
  690.     $sql .= ' ORDER BY link_' . $sqlorderby;
  691.  
  692.     // echo "$sql";
  693.     $links = $wpdb->get_results($sql);
  694.     if ($links) {
  695.         foreach ($links as $link) {
  696.             $short_url = str_replace('http://', '', stripslashes($link->link_url));
  697.             $short_url = str_replace('www.', '', $short_url);
  698.             if ('/' == substr($short_url, -1))
  699.                 $short_url = substr($short_url, 0, -1);
  700.             if (strlen($short_url) > 35)
  701.                 $short_url =  substr($short_url, 0, 32).'...';
  702.  
  703.             $link->link_name = wp_specialchars(stripslashes($link->link_name));
  704.             $link->category = wp_specialchars(stripslashes($link->category));
  705.             $link->link_rel = wp_specialchars(stripslashes($link->link_rel));
  706.             $link->link_description = wp_specialchars(stripslashes($link->link_description));
  707.             $image = ($link->link_image != null) ? __('Yes') : __('No');
  708.             $visible = ($link->link_visible == 'Y') ? __('Yes') : __('No');
  709.             ++$i;
  710.             $style = ($i % 2) ? ' class="alternate"' : '';
  711.             echo <<<LINKS
  712.  
  713.  
  714.     <tr valign="middle" $style>
  715.         <td><strong>$link->link_name</strong><br />
  716.         Description: $link->link_description</td>
  717.         <td><a href="$link->link_url" title="Visit $link->link_name">$short_url</a></td>
  718.         <td>$link->category</td>
  719.         <td>$link->link_rel</td>
  720.         <td align='center'>$image</td>
  721.         <td align='center'>$visible</td>
  722. LINKS;
  723.             $show_buttons = 1; // default
  724.  
  725.             if (get_settings('links_use_adminlevels') && ($link->user_level > $user_level)) {
  726.               $show_buttons = 0;
  727.             }
  728.  
  729.             if ($show_buttons) {
  730.               echo <<<LINKS
  731.         <td><a href="link-manager.php?link_id=$link->link_id&action=linkedit" class="edit">Edit</a></td>
  732.         <td><a href="link-manager.php?link_id=$link->link_id&action=Delete" onclick="return confirm('You are about to delete this link.\\n  \'Cancel\' to stop, \'OK\' to delete.');" class="delete">Delete</a></td>
  733.         <td><input type="checkbox" name="linkcheck[]" value="$link->link_id" /></td>
  734. LINKS;
  735.             } else {
  736.               echo "<td> </td><td> </td><td> </td>\n";
  737.             }
  738.         echo "\n\t</tr>";
  739.         }
  740.     }
  741. ?>
  742. </table>
  743.  
  744. </div>
  745.  
  746. <div class="wrap">
  747.   <table width="100%" cellpadding="3" cellspacing="3">
  748.     <tr><th colspan="4"><?php _e('Manage Multiple Links:') ?></th></tr>
  749.     <tr><td colspan="4"><?php _e('Use the checkboxes on the right to select multiple links and choose an action below:') ?></td></tr>
  750.     <tr>
  751.         <td>
  752.           <?php _e('Assign ownership to:'); echo ' ' . gethelp_link($this_file,'assign_ownership'); ?>
  753. <?php
  754.     $results = $wpdb->get_results("SELECT ID, user_login FROM $tableusers WHERE user_level > 0 ORDER BY ID");
  755.     echo "          <select name=\"newowner\" size=\"1\">\n";
  756.     foreach ($results as $row) {
  757.       echo "            <option value=\"".$row->ID."\"";
  758.       echo ">".$row->user_login;
  759.       echo "</option>\n";
  760.     }
  761.     echo "          </select>\n";
  762. ?>
  763.         <input name="assign" type="submit" id="assign" value="<?php _e('Go') ?>" />
  764.         </td>
  765.         <td>
  766.           <input name="visibility" type="submit" id="visibility" value="<?php _e('Toggle Visibility') ?>" /><?php echo gethelp_link($this_file,'toggle_visibility');?>
  767.         </td>
  768.         <td>
  769.           <?php _e('Move to category:'); echo ' ' . gethelp_link($this_file,'move_to_cat'); category_dropdown('category'); ?> <input name="move" type="submit" id="move" value="<?php _e('Go') ?>" />
  770.         </td>
  771.         <td align="right">
  772.           <a href="#" onClick="checkAll(document.getElementById('links')); return false; "><?php _e('Toggle Checkboxes') ?></a><?php echo gethelp_link($this_file,'toggle_checkboxes');?>
  773.         </td>
  774.     </tr>
  775. </table>
  776.  
  777. <?php
  778.   } // end if !popup
  779. ?>
  780. </form>
  781. </div>
  782.  
  783.  
  784. <?php
  785.     break;
  786.   } // end default
  787. } // end case
  788. ?>
  789.  
  790.  
  791.  
  792. <?php include('admin-footer.php'); ?>
  793.